﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class A : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //可从浏览器地址栏中看到地址变化
        // Response.Redirect("B.aspx");
    }

    protected void BtnTrans_Click(object sender, EventArgs e)
    {
        //在服务端进行跳转
        Server.Transfer("B.aspx");
    }

    protected void BtnExcute_Click(object sender, EventArgs e)
    {
        Server.Execute("C.aspx");
    }
}
//页面转跳：Response.Redirect()   Server.Execute()   Server.Transfer()的区别
// (1)Redirect()方法尽管在服务器端执行，但重定向实际发生在客户端，可从浏览器地址栏中看到地址变化；而Execute()和Transfer()方法的重定向实际发生在服务器端，在浏览器的地址栏中看不到地址变化。
//（2）Redirect()和Transfer()方法执行完新页面后，并不返回原页面；而Execute()方法执行完新页面后会返回原页面继续执行。
//（3）Redirect()方法可重定向到同一网站的不同页面，也可重定向到其它网站的页面；而Execute()和Transfer()方法只能重定向到同一网站的不同页面。
//（4）利用Redirect()方法在不同页面之间传递数据时，状态管理采用查询字符串形式；而Execute()和Transfer()方法的状态管理方式与Button类型控件的跨页面提交方式（Form表单提交）相同。